package csc.fresher.dao;

import java.util.List;

import csc.fresher.entity.CustomerAccount;
import csc.fresher.entity.DepositAccount;

public interface DepositAccountDao extends CustomerAccountDao {

	public DepositAccount getDepositAccountByDepositAccountID(long id);

	public long create(DepositAccount depositAccount);

	public boolean update(DepositAccount depositAccount);

	public boolean delete(DepositAccount depositAccount);

	public void getAccountBalance(DepositAccount depositAccount);

	// Search account by state (@uthor : Nghia)
	public List<CustomerAccount> getAccountByState(String accountState);

	public List<CustomerAccount> getAccountByIDCardNumber(long idCardNumber);

	public List<CustomerAccount> getAccountByFirstName(String firstName);

	public List<CustomerAccount> getAccoungByPhoneNumber(String phoneNumber);

	public List<CustomerAccount> getAccountByAddress(String address);

	public boolean updateStateToActive(DepositAccount depositAccount);

	public boolean updateStateToDisable(DepositAccount depositAccount);

	public boolean updateStateToRemovable(DepositAccount depositAccount);

	// get Account by customerID
	public List<CustomerAccount> getAccountByCustomerID(long customerID);

	public boolean updateStateToRemoved(DepositAccount depositAccount);
}
